﻿#region Creditos

/* Autor: Edilberto Sánchez Forero	*/
/* Email: esanchezfo@gmail.com		*/
/* Licencia: LGPL			*/
/* País: Colombia, Bogotá			*/

#endregion

#region Librerias


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ESF.SSO.Core.Entities;
using ESF.General;
using ESF.SSO.Core.DataAccess;
using ESF.General.Entity;

#endregion


namespace ESF.SSO.Core.BusinessLogic
{
	public static class CtrlContactUs
	{
		#region Read

		public static BrowseResults<ContactUs> Browse (ContactUs pFilter, PaggingInfo pPagInfo, out int pReadyCount, out int pPendingCount)
		{
			return AdoContactUs.Browse (pFilter, pPagInfo, out pReadyCount, out pPendingCount);
		}

		#endregion


		#region Write

		public static void Insert (ContactUs pContactUs)
		{
			#region Validacion
			
			Validate.FilledEmail (true, "Email", pContactUs.SenderEmail);
			Validate.Filled (true, "Comentarios", pContactUs.Comments);
			Validate.FilledObject (true, "Aplicación", pContactUs.Application);
			Validate.Filled (true, "Identificador de la Aplicación", pContactUs.Application.Code); 
						
			#endregion
			
			AdoContactUs.Insert (pContactUs);			
		}


		public static void InsertResponse (ContactUs pContactUs)
		{
			#region Validacion

			Validate.Filled (true, "Respuesta", pContactUs.Response);
			Validate.Filled (true, "Alias de Usuario de la Respuesta", pContactUs.ResponseUserAlias);

			#endregion

			AdoContactUs.InsertResponse (pContactUs);

			EmailSender.Send (
				"Respuesta de Contáctenos: " + pContactUs.Title, 
				string.Format ("A continuación la respuesta a su comentario enviado el: {0:yyyy-MM-dd h:mm:ss tt}\n\n{1}", pContactUs.CreationDateTime, pContactUs.Response), 
				false, false, false,
				pContactUs.SenderEmail);
		}

		#endregion
	}
}
